[C] Decimal -> Binario
Publicado por Enzo de Brito Ferber 05/04/2006
[ Hits: 7.896 ]
Homepage: http://www.maximasonorizacao.com.br
Programa que converte numeros decimais em binario usando operadores bit-bit padrões do C.
Muito bom para se entender operadores bit-bit e conversao de numeros...
/*
* Programa: Binário
* Arquivo: binario.c
* Autor: Enzo Ferber 'Slackware_10'
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define FLUSH __fpurge(stdin); //fflush(stdin) em sistemas windows
int converter(int num){
printf("%d", (num & 0x80) / 0x80); //bit 7
printf("%d", (num & 0x40) / 0x40); //bit 6
printf("%d", (num & 0x20) / 0x20); //bit 5
printf("%d", (num & 0x10) / 0x10); //bit 4
printf("%d", (num & 0x08) / 0x08); //bit 3
printf("%d", (num & 0x04) / 0x04); //bit 2
printf("%d", (num & 0x02) / 0x02); //bit 1
printf("%d", (num & 0x01) / 0x01); //bit 0
/* Quando ha uma coversao decimal->binario, o bit 7 vem em
* primeiro lugar, e o 0 em ultimo.
* Exemplo: Converter 65 (A) em binario
* 65 | 2 (resto 1) bit 0
* 32 | 2 (resto 0) bit 1
* 16 | 2 (resto 0) bit 2
* ...
* Depois se inverte os bits:
* B = bit
* B7 B6 B5 B4 B3 B2 B1 B0
*/
}
int main(void){
int num;
while(1){
system("clear"); //cls em sistemas windows
printf("Numero a converter: ");
FLUSH
scanf("%d", &num);
if(num == -1) break; //garante um loop nao infinito
converter(num);
FLUSH
getchar();
}
return 0;
}
Algorítmo para Calcular Raiz Quadrada
Exibe quantos números perfeitos foram digitados
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
How can I remove duplicate MSG files from my folders effectively? (0)
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









